1. Field of the Invention
The present invention relates to an information processing system, an information processing apparatus, an information processing method, and an information processing program, and more particularly, to an information processing system, an information processing apparatus, an information processing method, and an information processing program, which make it possible for an apparatus to communicate with another apparatus using a IM server even when apparatuses are connected with the Internet via a NAT apparatus.
2. Description of the Related Art
FIG. 1 shows an example of a conventional information processing system. In this information processing system, a client 11 and a client 12 are connected with the Internet 1, with which a server 13 is also connected. In general, the client 11 and the client 12 have information indicating an IP address of the server 13, defined as a global address on the Internet 1, and thus the client 11 and the client 12 can communicate with the server 13. This allows the client 11 and the client 12 to receive various kinds of information from the server 13.
However, the client 11 and the client 12, which are used by general users, do not have information about the global address (IP address), defined on the Internet 1, of the other client, and thus either client cannot directly communicate with the other client via the Internet 1. For example, the client 12 cannot directly communication with the client 11 via the Internet 1.
To solve the above problem, it is known to use an IM (instant messaging) server, such as an IM server 21 shown in FIG. 2. The client 11 and the client 12 are registered beforehand in a buddy list stored in the IM server 21. Each time one of registered clients logs on the IM server 21 via the Internet 1, the IM server 21 informs the other clients registered in the buddy list that the client has logged on. Thus, any client logging on the IM server 21 can know which clients are currently logging on the IM server 21.
For example, when the client 11 and the client 12 log in the IM server 21, the registered address (the global address (IP address) defined on the Internet 1) of the client 12 is transmitted to the client 11 via the IM server 21, and the registered global address (IP address) of the client 11 is transmitted to the client 12 via the IM server 21. Thus, both the client 11 and the client 12 get the global addresses in the form of the IP addresses of the other clients via the IM server 21. This makes it possible to each client to establish a session to perform peer-to-peer communication via the Internet 1 without passing through the IM server 21.
The global address in the form of the IP address of each user (client) is personal information that should be kept secret from general users other than specific users. In the case in which communication is performed via the IM server 21, the global address (the IP address) of each user is provided only to limited other users permitted to register the global address in the buddy list, and thus privacy can be maintained. Because of the above-described advantage, IM servers are becoming increasingly popular. A further detailed description of instant messaging may be found in journals or books (for example, in “INSTANT MESSAGING: COMPREHENSIVE INTRODUCTION”, Yoji Kanda, published Jan. 25, 2002 by Ohmsha, pp. 5 to 18).
In a case in which, as shown in FIG. 3, clients are connected with the Internet 1 via a NAT (Network Address Translation) apparatus, not only global addresses but also local addresses are necessary in two-way clients.
For example, in the system shown in FIG. 3, clients 11, 51, and 52 are connected with each other via a LAN (Local Area Network) 31. Those clients 11, 51, and 52 connected with the LAN 31 are connected with the Internet 1 via a NAT apparatus 41. The NAT apparatus 41 performs address translation between an IP address defined as a global address on the Internet 1 and a local address defined on the LAN 31 (in some cases, IP addresses that are valid only on the LAN 31 are used as local addresses for communication within the LAN 31).
For example, when the client 11 wants to log on to the IM server 21, the client 11 produces a packet in which the local address of the client 11 is described as the source address and the IP address of the IM server 21 as the destination address, and the client 11 transmits the resultant packet. The NAT apparatus 41 replaces the source address of the packet with a combination of the IP address serving as the global address of the NAT apparatus 41 and a port number of a port to which the client 11 is connected, and the NAT apparatus 41 transmits the resultant packet to the IM server 21 via the Internet 1.
When the IM server 21 transmits a packet to the client 11, the IM server 21 describes, in the packet, the IP address serving as the global address of the IM server 21 as the source address and describes, as the destination address, the IP address described in the packet received from the NAT apparatus 41, that is the IP address serving as the global address of the NAT apparatus 41. If the NAT apparatus 41 receives this packet from the IM server 21 via the Internet 1, the NAT apparatus 41 confirms that the packet is addressed to the NAT apparatus 41, from the global address in the form of the IP address described as the destination address in the packet. The NAT apparatus 41 captures that packet and transfers the captured packet to the client 11 connected with the port with the port number described in the destination address.
Thus, although the clients 11, 51, and 52 on the LAN 31 do not have their own IP addressees, as described above, they can communicate with other apparatus via the Internet by using in common the IP address serving as the global address of the NAT apparatus 41.
When clients are registered in the IM server 21, IP addresses serving as global addresses thereof are registered. For example, when the client 12 directly connected with the Internet 1 (without passing through a NAT apparatus) is registered, the IP address serving as the global address of the client 12 is registered. However, in the case of the client 11 connected with the Internet 1 via the NAT apparatus 41, the client 11 does not have its own IP address serving as the global address thereof, and thus the IP address serving as the global address of the NAT apparatus 41 and additional data indicating the port number of the client 11 are registered in the IM server 21.
When the client 11 wants to perform peer-to-peer communication with the client 12, if the client 11 acquires the IP address serving as the global address of the client 12 from the IM server 21, and if the client 12 acquires the IP address serving as the global address of the client 11 (NAT apparatus 41) and the additional port number, it becomes possible for the clients 11 and the client 12 to perform peer-to-peer communication using the acquired global addresses.
However, in a case in which, as shown in FIG. 4, the client 12 and the client 11 are connected with the same LAN 31, both the client 11 and the client 12 are connected with the Internet 1 via the same NAT apparatus 41. In this case, addresses necessary in peer-to-peer communication between the client 12 and the client 11 are not IP addresses serving as global addresses but local addresses defined on the LAN 32.
Thus, a user of the client 11 connected with the NAT apparatus 41 has to determine whether a local address or a global address should be used depending on whether the client 12 with which to perform peer-to-peer communication is connected with the same NAT apparatus as the NAT apparatus 41 with which the client 11 is connected. This is inconvenient for users.